Software applications, such as virtual machines (VMs), may be executed by a group, or “cluster,” of host computing devices. Each VM creates an abstraction of physical computing resources, such as a processor and memory, of the host executing the VM and executes a “guest” operating system, which, in turn, executes one or more software applications. The abstracted resources may be functionally indistinguishable from the underlying physical resources to the guest operating system and software applications.
At least some host computing devices are grouped together in a common site, such as a datacenter. A datacenter may be coupled to other datacenters by one or more wide area networks (WANs). Because of the large number of computing devices within some known datacenters, a large amount of data may be transmitted between datacenters through the WAN. Accordingly, the bandwidth of the WAN may be constrained and data transmission delays may undesirably be introduced.
To reduce the bandwidth utilization by the datacenter computing devices, at least some known datacenter computing devices use deduplication systems or other systems that reduce redundant data transmitted through the WAN. Such deduplication systems use deduplication caches to store frequently used data. The deduplication systems also determine if data to be transmitted over the WAN is already stored in a deduplication cache at a destination site. If the data to be transmitted is already stored in a deduplication cache, a fingerprint of the data that is smaller than the data itself may be transmitted in place of the data. The deduplication system at the destination site may then retrieve the data from its cache based on the fingerprint.
However, in some known deduplication systems, there may be significant latency costs associated with determining whether the data to be transmitted is stored within the deduplication cache. If the deduplication cache is searched to determine whether the data is stored within the cache, a latency cost may be added to the latency of the data transmission if the data is not located within the cache. Such a latency cost is sometimes known as a “cache miss penalty.” Additionally, during operation of the deduplication systems, one or more deduplication caches may become unsynchronized with respect to other caches. Specifically, a local deduplication system may predict that data is stored within a remote deduplication cache, for example, based on a fingerprint of the data stored within the local deduplication system, but the data may have been overwritten in the remote deduplication cache. The loss of synchronization between deduplication systems is sometimes referred to as a “cache synch-up” or a “cache synchronization” issue.